home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt40s5.arc / SETDEFAU.MOD < prev    next >
Text File  |  1987-09-30  |  41KB  |  1,064 lines

  1. (*----------------------------------------------------------------------*)
  2. (*        Set_Defaults --- Set Default Communications Parameters        *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. PROCEDURE Set_Defaults;
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Procedure:  Set_Defaults                                         *)
  10. (*                                                                      *)
  11. (*     Purpose:    Set default communications parameters                *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Set_Defaults;                                                 *)
  16. (*                                                                      *)
  17. (*      Calls:   None                                                   *)
  18. (*                                                                      *)
  19. (*      Remarks:  Note that defaults for color-related variables are    *)
  20. (*                set in PibTerm so that error messages will appear     *)
  21. (*                in a readable form.                                   *)
  22. (*                                                                      *)
  23. (*----------------------------------------------------------------------*)
  24.  
  25. VAR
  26.    I: INTEGER;
  27.    J: INTEGER;
  28.    F: FILE;
  29.  
  30. CONST
  31.    Pibterm_Version_Def = '4.0.2 Production.'  (* Version no. of PibTerm   *);
  32.    Pibterm_Date_Def    = 'Released September 30, 1987.' (* Date of PibTerm *);
  33.    Test_Version_Def    = FALSE         (* If a test version        *);
  34.  
  35. (* STRUCTURED *) CONST
  36.                                    (* Script conversion table       *)
  37.  
  38.    PibTerm_Com_Table_2     : ARRAY[0..No_Of_PibTerm_Commands_Minus_One]
  39.                              OF PibTerm_Command_Type =
  40.       ( AddCommandSy,   AddLFSy,       AlarmSy,       AreaCodeSy,
  41.         BreakSy,        CallSy,        CaptureSy,     CaseSy,
  42.         ChDirSy,        ClearSy,       CloseSy,       ClrEolSy,
  43.         CommFlushSy,    DeclareSy,     DelaySy,       DelLineSy,
  44.         DialSy,         DoCaseSy,      DosSy,         EchoSy,
  45.         EditSy,         ElseSy,        ElseIfSy,      EndCaseSy,
  46.         EndDoCaseSy,    EndForSy,      EndIfSy,       EndProcSy,
  47.         EndWhileSy,     ExecuteSy,     ExeNewSy,      ExitSy,
  48.         ExitAllSy,      FastCSy,       FileSy,        ForSy,
  49.         GetDirSy,
  50.         GetParamSy,     GetVarSy,      GossipSy,      GoToSy,
  51.         GoToXYSy,       HangUpSy,      HostSy,        IfConSy,
  52.         IfDialSy,       IfEofSy,       IfExistsSy,    IfFoundSy,
  53.         IfLocStrSy,     IfOkSy,        IfOpSy,        IfRemStrSy,
  54.         ImportSy,       InfoSy,        InputSy,       InsLineSy,
  55.         KeyDefSy,       KeyFlushSy,    KeySendSy,     KeySy,
  56.         LabelSy,        LogSy,         MenuSy,        MessageSy,
  57.         MuteSy,         OpenSy,        ParamSy,       PImportSy,
  58.         ProcedureSy,    QuitSy,        ReadSy,        ReadLnSy,
  59.         ReceiveSy,      ReDialSy,      RepeatSy,      ResetSy,
  60.         ReturnSy,       RInputSy,      ScriptSy,      SDumpSy,
  61.         SendSy,         SetSy,         SetParamSy,    SetVarSy,
  62.         STextSy,        SuspendSy,     TextSy,        TimersSy,
  63.         TranslateSy,    UntilSy,       ViewSy,        WaitSy,
  64.         WaitCountSy,    WaitListSy,    WaitQuietSy,   WaitStrSy,
  65.         WaitTimeSy,     WhenSy,        WhenDropSy,    WhenListSy,
  66.         WhereXYSy,      WhileSy,       WriteSy,       WriteLnSy,
  67.         WriteLogSy,     ZapVarSy,      Bad_Command,   Null_Command
  68.       );
  69.  
  70.    Terminal_Type_List_2  : ARRAY[0..NumberTerminalTypes] OF Terminal_Type =
  71.                            ( Dumb,     VT52,     Ansi,     VT100,
  72.                              Gossip,   HostMode, TEK4010,  ADM3a,
  73.                              ADM5,     TV925,    User1,    User2,
  74.                              User3,    User4,    User5 );
  75.  
  76.                                    (* Terminal names *)
  77.  
  78.    Terminal_Name_List_2  : ARRAY[0..NumberTerminalTypes] OF STRING[7] =
  79.                           ( 'Dumb',     'VT52',     'ANSI',     'VT100',
  80.                             'Gossip',   'Host',     'TEK4010',  'ADM3A',
  81.                             'ADM5',     'TV925',    'User1',    'User2',
  82.                             'User3',    'User4',    'User5' );
  83.  
  84.                                    (* Command-key definitions        *)
  85.    Alt_Let_Set_Defs: SET OF BYTE =
  86.                      [ Alt_A, Alt_B, Alt_C, Alt_D, Alt_E, Alt_F, Alt_G,
  87.                        Alt_H, Alt_I, Alt_J, Alt_K, Alt_L, Alt_M, Alt_N,
  88.                        Alt_O, Alt_P, Alt_Q, Alt_R, Alt_S, Alt_T, Alt_U,
  89.                        Alt_V, Alt_W, Alt_X, Alt_Y, Alt_Z ];
  90.  
  91.    DTransfers : ARRAY[ 1 .. Max_Transfer_Types ] OF Transfer_Type
  92.                 = ( Ascii, Xmodem_Chk, Xmodem_Crc, Kermit, Telink,
  93.                     Modem7_Chk, Modem7_CRC, Xmodem_1K, Xmodem_1KG,
  94.                     Ymodem_Batch, Ymodem_G,
  95.                     Zmodem, WXmodem, Rlink, SeaLink, YTerm,
  96.                     PUser1, PUser2, PUser3, PUser4, PUser5, None );
  97.  
  98.    DTransfer_Name_List : ARRAY[ 1 .. Max_Transfer_Types ] OF String12
  99.                          = ( '       Ascii', '  Xmodem Chk', '  Xmodem CRC',
  100.                              '      Kermit', '      Telink', '  Modem7 Chk',
  101.                              '  Modem7 CRC', '   Xmodem 1K', '  Xmodem 1Kg',
  102.                              'Ymodem Batch', '    Ymodem g', '      Zmodem',
  103.                              '     WXmodem', '       Rlink', '     SEALink',
  104.                              '       YTerm', '            ', '            ',
  105.                              '            ', '            ', '            ',
  106.                              '        None' );
  107.  
  108.    DTrans_Type_Name : ARRAY[ Transfer_Type ] OF Char_2 =
  109.                       ( 'AS', 'XK', 'XC', 'KE', 'TE', 'MK', 'M7',
  110.                         'X1', 'XG', 'YB', 'YG', 'ZM', 'WX', 'RL',
  111.                         'SL', 'YT', '  ', '  ', '  ', '  ', '  ',
  112.                         'NO' );
  113.  
  114. (* STRUCTURED *) CONST
  115.  
  116.    Def_Funk_Bases:  ARRAY[1..4] OF BYTE
  117.                     = ( 58, 83, 93, 103 );
  118.  
  119.    Def_Keypad_Nos:  ARRAY[0..12] OF BYTE
  120.                     = ( 12, 9, 10, 11, 5, 6, 7, 1, 2, 3, 13, 4, 8 );
  121.  
  122.    Def_Number_Nos:  ARRAY[0..12] OF BYTE
  123.                     = ( 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11, 12 );
  124.  
  125.    Def_Ctrl_Keys :  ARRAY[0..12] OF BYTE
  126.                     = ( 165, 117, 164, 118, 115, 162, 116,
  127.                         119, 160, 132, 166, 161, 163         );
  128.  
  129.    Def_Misc_Keys :  ARRAY[1..No_Misc_Keys] OF BYTE
  130.                     = ( 28, 255, 55, 114, 171 );
  131.  
  132. (*----------------------------------------------------------------------*)
  133. (*               IToS --- Convert integer to string                     *)
  134. (*----------------------------------------------------------------------*)
  135.  
  136. FUNCTION IToS( I: INTEGER ) : ShortStr;
  137.  
  138. VAR
  139.    S: STRING[10];
  140.  
  141. BEGIN (* IToS *)
  142.  
  143.    STR( I , S );
  144.    IToS := S;
  145.  
  146. END   (* IToS *);
  147.  
  148. (*----------------------------------------------------------------------*)
  149.  
  150. BEGIN (* Set_Defaults *)
  151.                                    (* Set version number       *)
  152.  
  153.    PibTerm_Version := Pibterm_Version_Def;
  154.    PibTerm_Date    := Pibterm_Date_Def;
  155.    Test_Version    := Test_Version_Def;
  156.  
  157.                                    (* Assume text mode from    *)
  158.                                    (* current system setting.  *)
  159.    CASE Current_Video_Mode OF
  160.  
  161.       0, 2, 7       : Text_Mode := BW80;
  162.       ELSE            Text_Mode := C80;
  163.  
  164.    END (* CASE *);
  165.  
  166.    TextMode( Text_Mode );
  167.                                    (* Set screen sizes         *)
  168.  
  169.    Get_Screen_Size( Max_Screen_Line , Max_Screen_Col );
  170.  
  171.    Wrap_Screen_Col     := Max_Screen_Col;
  172.  
  173.                                    (* Set window sizes         *)
  174.    Upper_Left_Column   := 1;
  175.    Upper_Left_Row      := 1;
  176.    Lower_Right_Column  := Max_Screen_Col;
  177.    Lower_Right_Row     := Max_Screen_Line;
  178.  
  179.                                    (* Get session start time   *)
  180.  
  181.    Session_Start_Time := TimeOfDay;
  182.    Dialing_Start_Time := Session_Start_Time;
  183.  
  184.                                    (* Clear screen             *)
  185.  
  186.    Scroll( 1, Max_Screen_Line, 1, Max_Screen_Col, 0, White, Black );
  187.    MoveToXY( 1 , 1 );
  188.                                    (* Select color/mono screen *)
  189.  
  190.    Get_Screen_Address( Actual_Screen );
  191.  
  192.                                    (* Set colors as black and white *)
  193.  
  194.    Set_Global_Colors( White, Black );
  195.    Set_Border_Color ( Black );
  196.  
  197.    ForeGround_Color  := White;
  198.    BackGround_Color  := Black;
  199.    Border_Color      := Black;
  200.    Menu_Text_Color   := White;
  201.    Menu_Text_Color_2 := White;
  202.    Menu_Frame_Color  := White;
  203.    Menu_Title_Color  := White;
  204.                                    (* Set VT100 colors         *)
  205.  
  206.    VT100_ForeGround_Color := LightGray;
  207.    VT100_BackGround_Color := Black;
  208.    VT100_Border_Color     := Black;
  209.    VT100_Underline_Color  := Blue;
  210.    VT100_Bold_Color       := White;
  211.  
  212.                                    (* No LEDs lit in VT100 mode *)
  213.    VT100_Led_Vector[1] := FALSE;
  214.    VT100_Led_Vector[2] := FALSE;
  215.    VT100_Led_Vector[3] := FALSE;
  216.    VT100_Led_Vector[4] := FALSE;
  217.                                    (* Set saved screen pointer  *)
  218.    Saved_Screen      := NIL;
  219.                                    (* Silent mode OFF to start  *)
  220.    Silent_Mode       := FALSE;
  221.                                    (* Local echo starts at OFF  *)
  222.    Local_Echo        := FALSE;
  223.                                    (* Gossip mode starts at OFF *)
  224.    Gossip_Mode_On    := FALSE;
  225.    Saved_Gossip_Term := Dumb;
  226.                                    (* Host Mode starts at OFF   *)
  227.    Host_Mode         := FALSE;
  228.                                    (* Phone number to dial      *)
  229.    Phone_Number      := '';
  230.                                    (* Last column not hit yet  *)
  231.    Last_Column_Hit   := FALSE;
  232.                                    (* Wrap long lines          *)
  233.    Auto_Wrap_Mode    := TRUE;
  234.                                    (* Insertion mode off       *)
  235.    Insertion_Mode    := FALSE;
  236.                                    (* New_Line mode not in effect *)
  237.    New_Line          := FALSE;
  238.                                    (* No blinking in effect    *)
  239.    Blinking_On       := FALSE;
  240.                                    (* No script file being used *)
  241.    Script_File_Mode  := FALSE;
  242.                                    (* No script being learned either *)
  243.    Script_Learn_Mode := FALSE;
  244.                                    (* Do XON/XOFF checking     *)
  245.    Do_Xon_Xoff_Checks := TRUE;
  246.                                    (* No WHENs in use    *)
  247.    Script_When_Text       := '';
  248.    Script_When_Reply_Text := '';
  249.    Script_When_Save       := '';
  250.    Script_When_Drop_Text  := '';
  251.    When_Mode              := FALSE;
  252.    When_Drop_Mode         := FALSE;
  253.  
  254.    Script_When_Count      := 0;
  255.  
  256.                                    (* No WAITs in use *)
  257.    Script_Wait_Save         := '';
  258.    Script_Wait_Found        := FALSE;
  259.    WaitString_Mode          := FALSE;
  260.    Read_In_Script           := FALSE;
  261.    Really_Wait_String       := FALSE;
  262.    Script_Suspend_Time      := 0.0;
  263.    Script_Default_Wait_Time := 30;
  264.    Script_Wait_Count        := 0;
  265.    Script_Wait_Char_Count   := 0;
  266.    WaitQuiet_Mode           := FALSE;
  267.    WaitCount_Mode           := FALSE;
  268.    Script_Wait_Generated    := FALSE;
  269.    Script_WaitQuiet_Time    := 0.0;
  270.                                    (* Count of WaitStrings generated *)
  271.    Script_Learn_Line_Count  := 0;
  272.  
  273.                                    (* No script to start *)
  274.    Script_Buffer          := NIL;
  275.    Script_Buffer_Size     := 0;
  276.  
  277.    Script_String       := '';
  278.    Script_String_2     := '';
  279.    Script_Count        := 0;
  280.    Script_Stack_Depth  := 0;
  281.    Script_Call_Depth   := 0;
  282.    Script_IO_Error     := 0;
  283.  
  284.    Script_Command_Key_Mode := FALSE;
  285.  
  286.    Script_Parameter_Marker  := '%';
  287.    Script_Learn_Buffer_Size := 15;
  288.    Script_Learn_Lines       := 1;
  289.    Script_Search_Order      := Dir_Then_Lib;
  290.  
  291.    FOR I := 0 TO No_Of_PibTerm_Commands_Minus_One DO
  292.       PibTerm_Command_Table_2[I] := PibTerm_Com_Table_2[I];
  293.  
  294.                                    (* No user-defined commands yet       *)
  295.    Script_New_Command_Count := 0;
  296.                                    (* No declared script variables yet,  *)
  297.                                    (* but leave space for special hidden *)
  298.                                    (* variables.                         *)
  299.    Script_Variable_Count  := 2;
  300.    Script_Parameter_Count := 0;
  301.    Script_Parameter_Got   := 0;
  302.    Prev_Script_Variables  := NIL;
  303.                                    (* No procedures yet either *)
  304.  
  305.    Proc_Parameters        := NIL;
  306.    Proc_Parameter_Count   := 0;
  307.    Proc_Parameter_Got     := 0;
  308.                                    (* Set date and time display types *)
  309.    Date_Format := YMD_Style;
  310.    Time_Format := Military_Time;
  311.  
  312.                                    (* Carrier not set high by default *)
  313.    Modem_Carrier_High     := FALSE;
  314.  
  315.                                    (* Default communications parameters *)
  316.    Data_Bits            := 8;
  317.    Parity               := 'N';
  318.    Stop_Bits            := 1;
  319.    Baud_Rate            := 2400;
  320.    Comm_Port            := 1;
  321.  
  322.    Async_Do_CTS         := FALSE;
  323.    Async_Do_DSR         := FALSE;
  324.    Async_Hard_Wired_On  := FALSE;
  325.    Async_Break_Length   := 100;
  326.    Async_Do_XonXoff     := TRUE;
  327.    Async_Buffer_Length  := 4096;
  328.    Async_OBuffer_Length := 1132;
  329.                                    (* Port addresses of each com port *)
  330.  
  331.    Default_Com_Base[1]  := COM1_Base;
  332.    Default_Com_Base[2]  := COM2_Base;
  333.    Default_Com_Base[3]  := COM3_Base;
  334.    Default_Com_Base[4]  := COM4_Base;
  335.  
  336.                                    (* IRQ line for each port *)
  337.  
  338.    Default_Com_Irq [1]  := COM1_Irq;
  339.    Default_Com_Irq [2]  := COM2_Irq;
  340.    Default_Com_Irq [3]  := COM3_Irq;
  341.    Default_Com_Irq [4]  := COM4_Irq;
  342.  
  343.                                    (* RS232 base addresses of each port *)
  344.  
  345.    Default_Com_RS232[1] := COM1_RS232;
  346.    Default_Com_RS232[2] := COM2_RS232;
  347.    Default_Com_RS232[3] := COM3_RS232;
  348.    Default_Com_RS232[4] := COM4_RS232;
  349.  
  350.    Drop_Dtr_At_End      := FALSE;
  351.    Close_Comm_For_Dos   := FALSE;
  352.  
  353.    Current_Saved_Screen := 0;
  354.  
  355.    FOR I := 1 TO Max_Saved_Screen DO
  356.       Saved_Screen_List[I] := NIL;
  357.  
  358.    Menu_Explode_Mode    := FALSE;
  359.    Menu_Beep_Mode       := TRUE;
  360.  
  361.    BS_Char              := CHR( BS );
  362.    Ctrl_BS_Char         := CHR( DEL );
  363.  
  364.    Write_Screen_Memory     := FALSE;
  365.    Write_Screen_Memory_Par := TRUE;
  366.  
  367.    Terminal_To_Emulate := Dumb;
  368.  
  369.    User_Term_Name[1] := 'USER1.TDE';
  370.    User_Term_Name[2] := 'USER2.TDE';
  371.    User_Term_Name[3] := 'USER3.TDE';
  372.    User_Term_Name[4] := 'USER4.TDE';
  373.    User_Term_Name[5] := 'USER5.TDE';
  374.  
  375.    Gossip_Window_Size  := 18;
  376.    Gossip_Line_Mode    := FALSE;
  377.  
  378.    Add_LF              := FALSE;
  379.    Capture_On          := FALSE;
  380.    Exact_Capture       := TRUE;
  381.    Printer_On          := FALSE;
  382.    Translate_On        := FALSE;
  383.    Play_Music_On       := TRUE;
  384.    Silent_Mode         := FALSE;
  385.    Local_Echo          := FALSE;
  386.    Alter_Baud_Rate     := TRUE;
  387.  
  388.    Modem_Init          := 'ATZ|ATX1|';
  389.    Modem_Dial          := 'ATDT';
  390.    Modem_Dial_End      := '|';
  391.    Modem_Connect       := 'CONNECT';
  392.    Modem_No_Carrier    := 'NO CARRIER';
  393.    Modem_Busy          := 'BUSY';
  394.    Modem_Time_Out      := 60.0;
  395.    Modem_Redial_Delay  := 45.0;
  396.    Modem_Escape        := '+++';
  397.    Modem_Escape_Time   := 1500;
  398.    Modem_Hang_Up       := 'ATH0|';
  399.    Modem_Answer        := 'ATA|';
  400.    Modem_Host_Set      := 'ATZ|~ATX1|~ATS0=1|';
  401.    Modem_Host_UnSet    := 'ATZ|~ATX1|~ATS0=0|';
  402.    Modem_Command_Delay := 10;
  403.    Modem_Ring          := 'RING';
  404.  
  405.    Break_Length        := 50;
  406.  
  407.    Hard_Wired          := FALSE;
  408.  
  409.    Host_Auto_Baud      := TRUE;
  410.  
  411.    Use_Short_Dial_Menu := FALSE;
  412.  
  413.    Max_Write_Buffer    := 2048;
  414.  
  415.    Default_Transfer_Type := Xmodem_Chk;
  416.    Default_Prefix        := ' ';
  417.    Default_Postfix       := ' ';
  418.  
  419.    Dialing_Dir_Size      := 200;
  420.    Dialing_Dir_Size_Max  := 200;
  421.  
  422.    Phone_Entry_Page    := 1;
  423.    Phone_Entry_Number  := -1;
  424.    Phone_Number        := '';
  425.    Dialing_Page        := 1;
  426.  
  427.    WITH Phone_Entry_Data DO
  428.       BEGIN
  429.          FOR I := 1 TO 25 Do
  430.             Phone_Name[I] := ' ';
  431.          FOR I := 1 TO 15 DO
  432.             Phone_Number[I] := ' ';
  433.       END;
  434.  
  435.    FK_CR         := '|';
  436.    FK_Delay      := '~';
  437.    FK_Wait_For   := '`';
  438.    FK_Ctrl_Mark  := '^';
  439.    FK_Script_Ch  := '@';
  440.    FK_Delay_Time := 10;
  441.  
  442.    Screen_Dump_Name   := '';
  443.    Graphics_Dump_Name := '';
  444.  
  445.    Download_Dir_Path  := '';
  446.    Upload_Dir_Path    := '';
  447.    Script_Path        := '';
  448.    Function_Key_Path  := '';
  449.  
  450.    Host_Mode_Upload     := '';
  451.    Host_Mode_Download   := '';
  452.    Host_Mode_Blank_Time := 180.0;
  453.  
  454.    Show_Status_Line := TRUE;
  455.    Show_Status_Time := FALSE;
  456.    Do_Status_Line   := FALSE;
  457.    Do_Status_Time   := FALSE;
  458.  
  459.    Status_ForeGround_Color := Black;
  460.    Status_BackGround_Color := White;
  461.    Reverse_Status_Colors   := TRUE;
  462.  
  463.    GMT_Difference    := 0;
  464.    Transfer_Bells    := 6;
  465.    Downsize_Ymodem   := TRUE;
  466.    Use_Ymodem_Header := FALSE;
  467.    Use_Block_Zero    := TRUE;
  468.  
  469.    CompuServe_B_On   := FALSE;
  470.    Mahoney_On        := TRUE;
  471.    YTerm_On          := FALSE;
  472.    YTerm_Mode        := 'B';
  473.    Exploding_Menus   := FALSE;
  474.    Check_CTS         := TRUE;
  475.    Check_DSR         := FALSE;
  476.    Print_Spooling    := FALSE;
  477.                                    (* Set retrace based upon display type *)
  478.  
  479.    EGA_Present          := EGA_Installed;
  480.    Wait_For_Retrace_Par := NOT ( EGA_Present OR ( Text_Mode = 7 ) );
  481.    Wait_For_Retrace     := Wait_For_Retrace_Par;
  482.  
  483.                                    (* Not an ATI EGA Wonder card *)
  484.    ATI_Ega_Wonder := FALSE;
  485.                                    (* Set empty review buffer  *)
  486.    Review_On         := FALSE;
  487.    Max_Review_Length := 0;
  488.    Review_Buffer     := NIL;
  489.    Review_Head       := 0;
  490.    Review_Tail       := 0;
  491.    Review_Line       := '';
  492.                                    (* Define command key set      *)
  493.  
  494.    Alt_Let_Set       := Alt_Let_Set_Defs;
  495.  
  496.                                    (* Initial translate maps each *)
  497.                                    (* character into itself.      *)
  498.                                    (* Also, no key strings yet    *)
  499.                                    (* defined.                    *)
  500.    FOR I := 0 TO 255 DO
  501.       BEGIN
  502.          TrTab[ CHR( I ) ]       := CHR( I );
  503.          Key_Definitions[I].Def  := NIL;
  504.          Key_Definitions[I].Name := '';
  505.          Keypad_Key_Index[ I ]   := 0;
  506.       END;
  507.                                    (* Initialize command table *)
  508.    FOR I := 0 TO 255 DO
  509.       Pibterm_Command_Table[I] := Null_Command;
  510.  
  511.    PibTerm_Command_Table[Alt_A] := EditSy;
  512.    PibTerm_Command_Table[Alt_B] := BreakSy;
  513.    PibTerm_Command_Table[Alt_C] := ClearSy;
  514.    PibTerm_Command_Table[Alt_D] := DialSy;
  515.    PibTerm_Command_Table[Alt_E] := EchoSy;
  516.    PibTerm_Command_Table[Alt_F] := FileSy;
  517.    PibTerm_Command_Table[Alt_G] := ScriptSy;
  518.    PibTerm_Command_Table[Alt_H] := HangUpSy;
  519.    PibTerm_Command_Table[Alt_I] := InfoSy;
  520.    PibTerm_Command_Table[Alt_J] := DosSy;
  521.    PibTerm_Command_Table[Alt_K] := KeySy;
  522.    PibTerm_Command_Table[Alt_L] := LogSy;
  523.    PibTerm_Command_Table[Alt_M] := MuteSy;
  524.    PibTerm_Command_Table[Alt_N] := FastCSy;
  525.    PibTerm_Command_Table[Alt_O] := CaptureSy;
  526.    PibTerm_Command_Table[Alt_P] := ParamSy;
  527.    PibTerm_Command_Table[Alt_Q] := RedialSy;
  528.    PibTerm_Command_Table[Alt_R] := ReceiveSy;
  529.    PibTerm_Command_Table[Alt_S] := SendSy;
  530.    PibTerm_Command_Table[Alt_T] := TranslateSy;
  531.    PibTerm_Command_Table[Alt_U] := SDumpSy;
  532.    PibTerm_Command_Table[Alt_V] := ViewSy;
  533.    PibTerm_Command_Table[Alt_W] := HostSy;
  534.    PibTerm_Command_Table[Alt_X] := QuitSy;
  535.    PibTerm_Command_Table[Alt_Y] := TimersSy;
  536.    PibTerm_Command_Table[Alt_Z] := AreaCodeSy;
  537.  
  538.    PibTerm_Command_Table[U_Arrow]      := KeySendSy;
  539.    PibTerm_Command_Table[Alt_U_Arrow]  := KeySendSy;
  540.    PibTerm_Command_Table[Ctrl_U_Arrow] := KeySendSy;
  541.  
  542.    PibTerm_Command_Table[L_Arrow]      := KeySendSy;
  543.    PibTerm_Command_Table[Alt_L_Arrow]  := KeySendSy;
  544.    PibTerm_Command_Table[Ctrl_L_Arrow] := KeySendSy;
  545.  
  546.    PibTerm_Command_Table[R_Arrow]      := KeySendSy;
  547.    PibTerm_Command_Table[Alt_R_Arrow]  := KeySendSy;
  548.    PibTerm_Command_Table[Ctrl_R_Arrow] := KeySendSy;
  549.  
  550.    PibTerm_Command_Table[D_Arrow]      := KeySendSy;
  551.    PibTerm_Command_Table[Alt_D_Arrow]  := KeySendSy;
  552.    PibTerm_Command_Table[Ctrl_D_Arrow] := KeySendSy;
  553.  
  554.    PibTerm_Command_Table[Home]         := KeySendSy;
  555.    PibTerm_Command_Table[Alt_Home]     := KeySendSy;
  556.    PibTerm_Command_Table[Ctrl_Home]    := KeySendSy;
  557.  
  558.    PibTerm_Command_Table[PgUp]         := KeySendSy;
  559.    PibTerm_Command_Table[Alt_PgUp]     := KeySendSy;
  560.    PibTerm_Command_Table[Ctrl_PgUp]    := KeySendSy;
  561.  
  562.    PibTerm_Command_Table[End_Key]      := KeySendSy;
  563.    PibTerm_Command_Table[Alt_End_Key]  := KeySendSy;
  564.    PibTerm_Command_Table[Ctrl_End_Key] := KeySendSy;
  565.  
  566.    PibTerm_Command_Table[PgDn]         := KeySendSy;
  567.    PibTerm_Command_Table[Alt_PgDn]     := KeySendSy;
  568.    PibTerm_Command_Table[Ctrl_PgDn]    := KeySendSy;
  569.  
  570.    PibTerm_Command_Table[Ins_Key]      := KeySendSy;
  571.    PibTerm_Command_Table[Alt_Ins_Key]  := KeySendSy;
  572.    PibTerm_Command_Table[Ctrl_Ins_Key] := KeySendSy;
  573.  
  574.    PibTerm_Command_Table[Del_Key]      := KeySendSy;
  575.    PibTerm_Command_Table[Alt_Del_Key]  := KeySendSy;
  576.    PibTerm_Command_Table[Ctrl_Del_Key] := KeySendSy;
  577.  
  578.    PibTerm_Command_Table[Kpd_Minus]      := KeySendSy;
  579.    PibTerm_Command_Table[Alt_Kpd_Minus]  := KeySendSy;
  580.    PibTerm_Command_Table[Ctrl_Kpd_Minus] := KeySendSy;
  581.  
  582.    PibTerm_Command_Table[Kpd_Plus]       := KeySendSy;
  583.    PibTerm_Command_Table[Alt_Kpd_Plus]   := KeySendSy;
  584.    PibTerm_Command_Table[Ctrl_Kpd_Plus]  := KeySendSy;
  585.  
  586.    PibTerm_Command_Table[Kpd_5]          := KeySendSy;
  587.    PibTerm_Command_Table[Alt_Kpd_5]      := KeySendSy;
  588.    PibTerm_Command_Table[Ctrl_Kpd_5]     := KeySendSy;
  589.  
  590.    PibTerm_Command_Table[Alt_Enter]      := KeySendSy;
  591.    PibTerm_Command_Table[Alt_BS]         := KeySendSy;
  592.  
  593.    PibTerm_Command_Table[PrtSc]          := KeySendSy;
  594.    PibTerm_Command_Table[Alt_PrtSc]      := KeySendSy;
  595.    PibTerm_Command_Table[Ctrl_PrtSc]     := KeySendSy;
  596.  
  597.                                    (* Initialize key names *)
  598.    FOR I := F1 TO F10 DO
  599.       BEGIN
  600.          PibTerm_Command_Table[I] := KeySendSy;
  601.          Key_Definitions[I].Name  := 'F' + IToS( I - F1 + 1 );
  602.       END;
  603.  
  604.    FOR I := Alt_F1 TO Alt_F10 DO
  605.       BEGIN
  606.          PibTerm_Command_Table[I] := KeySendSy;
  607.          Key_Definitions[I].Name  := 'A' + IToS( I - Alt_F1 + 1 );
  608.       END;
  609.  
  610.    FOR I := Shift_F1 TO Shift_F10 DO
  611.       BEGIN
  612.          PibTerm_Command_Table[I] := KeySendSy;
  613.          Key_Definitions[I].Name  := 'S' + IToS( I - Shift_F1 + 1 );
  614.       END;
  615.  
  616.    FOR I := Ctrl_F1 TO Ctrl_F10 DO
  617.       BEGIN
  618.          PibTerm_Command_Table[I] := KeySendSy;
  619.          Key_Definitions[I].Name  := 'C' + IToS( I - Ctrl_F1 + 1 );
  620.       END;
  621.  
  622.    FOR I := Alt_1 TO Alt_Equal DO
  623.       BEGIN
  624.          PibTerm_Command_Table[I] := KeySendSy;
  625.          Key_Definitions[I].Name  := 'N'+ COPY( '1234567890-+', I - Alt_1 + 1, 1 );
  626.       END;
  627.  
  628.    Key_Definitions[U_Arrow].Name      := 'K8';
  629.    Key_Definitions[Alt_U_Arrow].Name  := 'AK8';
  630.    Key_Definitions[Ctrl_U_Arrow].Name := 'CK8';
  631.  
  632.    Key_Definitions[L_Arrow].Name      := 'K4';
  633.    Key_Definitions[Alt_L_Arrow].Name  := 'AK4';
  634.    Key_Definitions[Ctrl_L_Arrow].Name := 'CK4';
  635.  
  636.    Key_Definitions[R_Arrow].Name      := 'K6';
  637.    Key_Definitions[Alt_R_Arrow].Name  := 'AK6';
  638.    Key_Definitions[Ctrl_R_Arrow].Name := 'CK6';
  639.  
  640.    Key_Definitions[D_Arrow].Name      := 'K2';
  641.    Key_Definitions[Alt_D_Arrow].Name  := 'AK2';
  642.    Key_Definitions[Ctrl_D_Arrow].Name := 'CK2';
  643.  
  644.    Key_Definitions[Home].Name         := 'K7';
  645.    Key_Definitions[Alt_Home].Name     := 'AK7';
  646.    Key_Definitions[Ctrl_Home].Name    := 'CK7';
  647.  
  648.    Key_Definitions[PgUp].Name         := 'K9';
  649.    Key_Definitions[Alt_PgUp].Name     := 'AK9';
  650.    Key_Definitions[Ctrl_PgUp].Name    := 'CK9';
  651.  
  652.    Key_Definitions[End_Key].Name      := 'K1';
  653.    Key_Definitions[Alt_End_Key].Name  := 'AK1';
  654.    Key_Definitions[Ctrl_End_Key].Name := 'CK1';
  655.  
  656.    Key_Definitions[PgDn].Name         := 'K3';
  657.    Key_Definitions[Alt_PgDn].Name     := 'AK3';
  658.    Key_Definitions[Ctrl_PgDn].Name    := 'CK3';
  659.  
  660.    Key_Definitions[Ins_Key].Name      := 'K0';
  661.    Key_Definitions[Alt_Ins_Key].Name  := 'AK0';
  662.    Key_Definitions[Ctrl_Ins_Key].Name := 'CK0';
  663.  
  664.    Key_Definitions[Del_Key].Name      := 'K.';
  665.    Key_Definitions[Alt_Del_Key].Name  := 'AK.';
  666.    Key_Definitions[Ctrl_Del_Key].Name := 'CK.';
  667.  
  668.    Key_Definitions[Kpd_Minus].Name      := 'K-';
  669.    Key_Definitions[Alt_Kpd_Minus].Name  := 'AK-';
  670.    Key_Definitions[Ctrl_Kpd_Minus].Name := 'CK-';
  671.  
  672.    Key_Definitions[Kpd_Plus].Name       := 'K+';
  673.    Key_Definitions[Alt_Kpd_Plus].Name   := 'AK+';
  674.    Key_Definitions[Ctrl_Kpd_Plus].Name  := 'CK+';
  675.  
  676.    Key_Definitions[Kpd_5].Name          := 'K5';
  677.    Key_Definitions[Alt_Kpd_5].Name      := 'AK5';
  678.    Key_Definitions[Ctrl_Kpd_5].Name     := 'CK5';
  679.  
  680.    Key_Definitions[Alt_Enter].Name      := 'AEN';
  681.  
  682.    Key_Definitions[Alt_BS].Name         := 'ABS';
  683.  
  684.    Key_Definitions[PrtSc].Name          := 'PS';
  685.    Key_Definitions[Alt_PrtSc].Name      := 'APS';
  686.    Key_Definitions[Ctrl_PrtSc].Name     := 'CPS';
  687.  
  688.                                    (* Initialize keypad indices *)
  689.  
  690.    Keypad_Key_Index[U_Arrow]        := 1;
  691.    Keypad_Key_Index[Alt_U_Arrow]    := 14;
  692.    Keypad_Key_Index[Ctrl_U_Arrow]   := 27;
  693.  
  694.    Keypad_Key_Index[L_Arrow]        := 2;
  695.    Keypad_Key_Index[Alt_L_Arrow]    := 15;
  696.    Keypad_Key_Index[Ctrl_L_Arrow]   := 28;
  697.  
  698.    Keypad_Key_Index[R_Arrow]        := 3;
  699.    Keypad_Key_Index[Alt_R_Arrow]    := 16;
  700.    Keypad_Key_Index[Ctrl_R_Arrow]   := 29;
  701.  
  702.    Keypad_Key_Index[D_Arrow]        := 4;
  703.    Keypad_Key_Index[Alt_D_Arrow]    := 17;
  704.    Keypad_Key_Index[Ctrl_D_Arrow]   := 30;
  705.  
  706.    Keypad_Key_Index[Home]           := 5;
  707.    Keypad_Key_Index[Alt_Home]       := 18;
  708.    Keypad_Key_Index[Ctrl_Home]      := 31;
  709.  
  710.    Keypad_Key_Index[PgUp]           := 6;
  711.    Keypad_Key_Index[Alt_PgUp]       := 19;
  712.    Keypad_Key_Index[Ctrl_PgUp]      := 32;
  713.  
  714.    Keypad_Key_Index[End_Key]        := 7;
  715.    Keypad_Key_Index[Alt_End_Key]    := 20;
  716.    Keypad_Key_Index[Ctrl_End_Key]   := 33;
  717.  
  718.    Keypad_Key_Index[PgDn]           := 8;
  719.    Keypad_Key_Index[Alt_PgDn]       := 21;
  720.    Keypad_Key_Index[Ctrl_PgDn]      := 34;
  721.  
  722.    Keypad_Key_Index[Ins_Key]        := 9;
  723.    Keypad_Key_Index[Alt_Ins_Key]    := 22;
  724.    Keypad_Key_Index[Ctrl_Ins_Key]   := 35;
  725.  
  726.    Keypad_Key_Index[Del_Key]        := 10;
  727.    Keypad_Key_Index[Alt_Del_Key]    := 23;
  728.    Keypad_Key_Index[Ctrl_Del_Key]   := 36;
  729.  
  730.    Keypad_Key_Index[Kpd_Minus]      := 11;
  731.    Keypad_Key_Index[Alt_Kpd_Minus]  := 24;
  732.    Keypad_Key_Index[Ctrl_Kpd_Minus] := 37;
  733.  
  734.    Keypad_Key_Index[Kpd_Plus]       := 12;
  735.    Keypad_Key_Index[Alt_Kpd_Plus]   := 25;
  736.    Keypad_Key_Index[Ctrl_Kpd_Plus]  := 38;
  737.  
  738.    Keypad_Key_Index[Kpd_5]          := 13;
  739.    Keypad_Key_Index[Alt_Kpd_5]      := 26;
  740.    Keypad_Key_Index[Ctrl_Kpd_5]     := 39;
  741.  
  742.                                    (* Initialize Kermit variables *)
  743.  
  744.                                    (* Timeout value *)
  745.    Kermit_Timeout          := 5;
  746.                                    (* Default checksum method is 3-char CRC *)
  747.    Kermit_Chk_Type         := '3';
  748.                                    (* Marks repeated data *)
  749.    Kermit_Repeat_Char      := '~';
  750.                                    (* But repeating not default *)
  751.    Repeating               := FALSE;
  752.                                    (* Half-duplex handshake character *)
  753.    Kermit_Handshake_Char   := ' ';
  754.                                    (* Time to wait before send in host mode *)
  755.    Kermit_Delay_Time       := 15;
  756.                                    (* Initial packet size *)
  757.    Kermit_Init_Packet_Size := 90;
  758.    Kermit_Packet_Size      := 90;
  759.  
  760.                                    (* Padding not required *)
  761.    Kermit_Npad             := 0;
  762.    Kermit_Pad_Char         := CHR( 0 );
  763.  
  764.                                    (* Don't send padding unless requested *)
  765.    My_Pad_Num              := 0;
  766.                                    (* CR is initial EOL *)
  767.  
  768.    Kermit_EOL              := CHR( CR );
  769.  
  770.                                    (* Send a CR to start with *)
  771.    Send_EOL                := CR;
  772.                                    (* Use the default quote *)
  773.    Kermit_Quote_Char       := '#';
  774.                                    (* Use the default 8 bit quote *)
  775.    Kermit_Quote_8_Char     := '&';
  776.                                    (* But don't ask for it unless binary with parity *)
  777.    Quoting                 := FALSE;
  778.  
  779.                                    (* SOH is default header character *)
  780.    Kermit_Header_Char      := CHR( SOH );
  781.  
  782.                                    (* Kermit sliding window queue size *)
  783.    Kermit_Window_Size      := 16;
  784.                                    (* Neither ascii not binary specified *)
  785.  
  786.    Kermit_File_Type_Var    := Kermit_None;
  787.  
  788.                                    (* Assume maximum packet length       *)
  789.  
  790.    Kermit_Extended_Block   := MaxLongPacketLength;
  791.  
  792.                                    (* Editor name *)
  793.    Editor_Name  := '';
  794.                                    (* Browser name *)
  795.    Browser_Name := '';
  796.                                    (* No dialing changes *)
  797.    Any_Dialing_Changes := FALSE;
  798.                                    (* No printer setup string *)
  799.    Printer_Setup := '';
  800.                                    (* No list dial in effect  *)
  801.    N_Dial_Nos    := 0;
  802.    I_Dial_Nos    := 0;
  803.                                    (* No answerback message *)
  804.    VT100_Answerback_Message := '';
  805.  
  806.                                    (* Throw away aborted download files *)
  807.    Evict_Partial_Trans  := FALSE;
  808.                                    (* Use DOS EXEC function for jumps   *)
  809.    Use_Dos_Exec_In_Jump := TRUE;
  810.                                    (* Ascii transfer stuff              *)
  811.    Ascii_Use_CtrlZ    := FALSE;
  812.    Ascii_Show_Text    := TRUE;
  813.    Ascii_Send_Blank   := FALSE;
  814.    Ascii_Send_Asis    := FALSE;
  815.    Ascii_Line_Delay   := 0;
  816.    Ascii_Char_Delay   := 0;
  817.    Ascii_Line_Size    := 255;
  818.    Ascii_Pacing_Char  := CHR( 0 );
  819.    Ascii_CR_LF_String := CHR( CR );
  820.    Ascii_Translate    := TRUE;
  821.  
  822.                                    (* Don't allow extended keypad by default *)
  823.    Extended_Keypad      := FALSE;
  824.  
  825.                                    (* Define menu box characters   *)
  826.    WITH Menu_Box_Chars DO
  827.       BEGIN
  828.          Top_Left_Corner     := '╒';
  829.          Top_Line            := '═';
  830.          Top_Right_Corner    := '╕';
  831.          Right_Line          := '│';
  832.          Bottom_Right_Corner := '╛';
  833.          Bottom_Line         := '═';
  834.          Bottom_Left_Corner  := '╘';
  835.          Left_Line           := '│';
  836.       END;
  837.                                    (* Start out in menu mode only           *)
  838.    Command_Key       := 0;
  839.    Command_Key_Name  := '';
  840.    Command_Key_Text  := '';
  841.    Use_Prev_Key_Text := FALSE;
  842.                                    (* Attended mode by default              *)
  843.    Attended_Mode := TRUE;
  844.                                    (* Insert mode by default                *)
  845.    Edit_Insert_Mode := TRUE;
  846.                                    (* Transfer not from script              *)
  847.    Script_Transfer  := FALSE;
  848.                                    (* No status line name to start          *)
  849.    Status_Line_Name    := '';
  850.    Short_Terminal_Name := '';
  851.                                    (* Xmodem stuff                          *)
  852.    Xmodem_Char_Wait    := 1;
  853.    Xmodem_Block_Wait   := 10;
  854.    Xmodem_Ack_Wait     := 10;
  855.    Xmodem_Max_Errors   := 20;
  856.                                    (* Load function keys automatically      *)
  857.    Auto_Load_FunKeys   := TRUE;
  858.                                    (* Don't use DOS input by default        *)
  859.    Use_Dos_Buffer_In   := FALSE;
  860.                                    (* CTTY device driver prefix/root name   *)
  861.    Host_CTTY_Device    := 'COM';
  862.                                    (* Set terminal names, types lists       *)
  863.  
  864.    FOR I := 0 TO NumberTerminalTypes DO
  865.       BEGIN
  866.          Terminal_Type_List[I] := Terminal_Type_List_2[I];
  867.          Terminal_Name_List[I] := Terminal_Name_List_2[I];
  868.       END;
  869.                                    (* Debugging in Kermit *)
  870.  
  871.    Kermit_Debug          := Command_Debug_Mode;
  872.  
  873.                                    (* General debug mode  *)
  874.  
  875.    Debug_Mode            := Command_Debug_Mode;
  876.  
  877.                                    (* Configuration file name *)
  878.  
  879.    Config_File_Name      := Command_Config_File_Name;
  880.  
  881.                                    (* Dialing directory file name *)
  882.  
  883.    Dialing_File_Name     := Command_Dialing_File_Name;
  884.  
  885.                                    (* Function key file name *)
  886.  
  887.    Function_Key_Name     := Command_Function_Key_Name;
  888.  
  889.                                    (* Dialing prefix file name *)
  890.  
  891.    Prefix_File_Name      := Command_Prefix_File_Name;
  892.  
  893.                                    (* Translate table file name *)
  894.  
  895.    Translate_File_Name   := Command_Translate_File_Name;
  896.  
  897.                                    (* Log file name *)
  898.  
  899.    Log_File_Name         := Command_Log_File_Name;
  900.  
  901.                                    (* Use DOS console output in dumb term *)
  902.    Use_Dos_Con_Output    := FALSE;
  903.  
  904.                                    (* Don't automatically unload scripts  *)
  905.    Auto_Unload_Scripts   := FALSE;
  906.                                    (* No currently executing scripts      *)
  907.    Current_Script_Num    := 0;
  908.                                    (* No script tests to start with       *)
  909.    Do_Script_Tests       := FALSE;
  910.                                    (* Not dialing attached script         *)
  911.    Script_Dialed         := FALSE;
  912.                                    (* No script files active              *)
  913.    Script_File_Count     := 0;
  914.                                    (* Allocate keyboard/consol file       *)
  915.    Script_File_Used[0]   := TRUE;
  916.  
  917.    NEW( Script_File_List[0] );
  918.  
  919.    WITH Script_File_List[0]^ DO
  920.       BEGIN
  921.          ReadOnly  := FALSE;
  922.          EOF_Seen  := FALSE;
  923.          Opened    := TRUE;
  924.       END;
  925.                                    (* Other files not used yet            *)
  926.  
  927.    FOR I := 1 TO MaxScriptOpenFiles DO
  928.       Script_File_Used[I] := FALSE;
  929.  
  930.                                    (* Set terminal mode stuff             *)
  931.  
  932.    Graphics_Mode         := FALSE;
  933.    Alt_KeyPad_Mode       := FALSE;
  934.    Hold_Screen_Mode      := FALSE;
  935.    Reset_Requested       := FALSE;
  936.    Auto_Print_Mode       := FALSE;
  937.    Printer_Ctrl_Mode     := FALSE;
  938.  
  939.    Escape_Mode           := FALSE;
  940.    Ansi_Last_Line        := Max_Screen_Line;
  941.  
  942.    FillChar( Line_Attributes, 100, 0 );
  943.  
  944.                                    (* Remember current colors *)
  945.  
  946.    New_ForeGround_Color  := ForeGround_Color;
  947.    New_BackGround_Color  := BackGround_Color;
  948.    New_Menu_Text_Color   := Menu_Text_Color;
  949.    New_Menu_Title_Color  := Menu_Title_Color;
  950.    New_Menu_Text_Color_2 := Menu_Text_Color_2;
  951.    New_Menu_Frame_Color  := Menu_Frame_Color;
  952.    New_Border_Color      := Border_Color;
  953.  
  954.                                    (* Remember current text mode *)
  955.  
  956.    New_Text_Mode         := Text_Mode;
  957.  
  958.                                    (* Keyboard not locked *)
  959.    Keyboard_Locked       := FALSE;
  960.                                    (* Find file names *)
  961.    Auto_Find_FileNames   := TRUE;
  962.                                    (* No keyboard input yet *)
  963.    Keyboard_Line         := '';
  964.    Keyboard_Line_Pos     := 0;
  965.                                    (* Don't prompt each file in Rlink *)
  966.    Rlink_Prompt_Each     := FALSE;
  967.                                    (* Not a graphics terminal *)
  968.    Graphics_Terminal_Mode := FALSE;
  969.  
  970.                                    (* Cursor is underline and blinks *)
  971.    Cursor_Underline := TRUE;
  972.    Cursor_Blink     := TRUE;
  973.                                    (* Don't do automatic cursor key *)
  974.                                    (* redefinitions in VT100 mode   *)
  975.    Auto_Change_Arrows  := FALSE;
  976.                                    (* Don't strip high bits in terminal mode *)
  977.    Auto_Strip_High_Bit := FALSE;
  978.                                    (* Zmodem block size = 256 by default *)
  979.    Zmodem_BlockSize    := 256;
  980.                                    (* Menu depth = 0 at this point *)
  981.    Menu_Depth          := 0;
  982.                                    (* Set transfer types and names *)
  983.  
  984.    FOR I := 1 TO Max_Transfer_Types DO
  985.       BEGIN
  986.          Transfers[I]                       := DTransfers[I];
  987.          Transfer_Name_List[I]              := DTransfer_Name_List[I];
  988.          Trans_Type_Name[Transfers[I]]      := DTrans_Type_Name[Transfers[I]];
  989.          Single_File_Protocol[Transfers[I]] := FALSE;
  990.          Send_Script_Names[Transfers[I]]    := '';
  991.          Receive_Script_Names[Transfers[I]] := '';
  992.          Trans_OK_In_Host[Transfers[I]]     := TRUE;
  993.       END;
  994.                                    (* Default script names for Zmodem *)
  995.  
  996.    Send_Script_Names   [Zmodem] := 'SENDZMOD';
  997.    Receive_Script_Names[Zmodem] := 'RECZMOD';
  998.  
  999.                                    (* Default script names for YTerm *)
  1000.  
  1001.    Send_Script_Names   [YTerm] := 'SENDYTER';
  1002.    Receive_Script_Names[YTerm] := 'RECYTERM';
  1003.  
  1004.                                    (* Default script names for Rlink *)
  1005.  
  1006.    Send_Script_Names   [Rlink] := 'SENDRLIN';
  1007.    Receive_Script_Names[Rlink] := 'RECRLINK';
  1008.  
  1009.                                    (* Mark protocols which send 1 file only *)
  1010.  
  1011.    Single_File_Protocol[ WXmodem    ] := TRUE;
  1012.    Single_File_Protocol[ Xmodem_Chk ] := TRUE;
  1013.    Single_File_Protocol[ Xmodem_Crc ] := TRUE;
  1014.    Single_File_Protocol[ Ascii      ] := TRUE;
  1015.    Single_File_Protocol[ Xmodem_1K  ] := TRUE;
  1016.    Single_File_Protocol[ Xmodem_1KG ] := TRUE;
  1017.  
  1018.                                    (* Don't allow YTerm, SEALink in host mode *)
  1019.  
  1020.    Trans_OK_In_Host[ YTerm   ] := FALSE;
  1021.    Trans_OK_In_Host[ SEALink ] := FALSE;
  1022.  
  1023.                                    (* Use ordinary BIOS scroll by default *)
  1024.  
  1025.    Software_Scroll         := FALSE;
  1026.    Software_Scroll_Par     := FALSE;
  1027.    Video_Handler_Installed := FALSE;
  1028.  
  1029.                                    (* Assume no carrier to start *)
  1030.  
  1031.    Current_Carrier_Status := FALSE;
  1032.    New_Carrier_Status     := FALSE;
  1033.    Carrier_Dropped        := FALSE;
  1034.  
  1035.                                    (* Define function key indices *)
  1036.  
  1037.    MOVE( Def_Funk_Bases, Funk_Bases, 4  );
  1038.    MOVE( Def_Keypad_Nos, Keypad_Nos, 13 );
  1039.    MOVE( Def_Number_Nos, Number_Nos, 13 );
  1040.    MOVE( Def_Ctrl_Keys , Ctrl_Keys , 13 );
  1041.    MOVE( Def_Misc_Keys , Misc_Keys , No_Misc_Keys );
  1042.  
  1043.                                    (* Send upper case only is false *)
  1044.    Send_Upper_Case_Only := FALSE;
  1045.                                    (* Log file not open *)
  1046.    Log_File_Open        := FALSE;
  1047.                                    (* Start with logging turned off. *)
  1048.    Logging_On           := FALSE;
  1049.                                    (* Initialize display actions and *)
  1050.                                    (* character sets.                *)
  1051.  
  1052.    FOR I := 1 TO MaxDisplayStates DO
  1053.       Display_Action_Ptr[I] := NIL;
  1054.  
  1055.    FOR I := 1 TO MaxDisplayCharSets DO
  1056.       Display_Char_Set_Ptr[I] := NIL;
  1057.  
  1058.    NEW( Display_Action_Ptr[1]   );
  1059.  
  1060.    NEW( Display_Char_Set_Ptr[1] );
  1061.    NEW( Display_Char_Set_Ptr[2] );
  1062.  
  1063. END   (* Set_Defaults *);
  1064.